﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using HousingInfo.Library;

namespace WebHousingInfo
{
    public partial class DangKyTaiKhoan : System.Web.UI.Page
    {
        private static UserBO userbosave;
        private static bool checkcomplete;
        private static string _fileImageName;
        protected void Page_Load(object sender, EventArgs e)
        {
            //<li id="li_Security" class="">
            //    <div class="box_text"><strong class="blue_txt"><span class="red_txt">* </span>Mã xác nhận:</strong></div>
            //    <div class="box_frm">
            //      <input type="text" onfocus="TNPassShowAlert(this,4)" alt="alert_security" class="txt_74" name="security_code">
            //      <img class="code_ser" alt="" src="http://passport.timnhanh.com/capcha/register">
            //       <p id="err_Security" class="box_error"></p>
            //   </div>
            //  </li>
            if(!IsPostBack)
            {
                getvaluemonth_year();
                getquestion();
            }
        }

        protected void dlmonth_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (dlmonth.SelectedValue != "Tháng")
                getvaluedate(Convert.ToInt32(dlmonth.SelectedValue));
        }

        protected void btncheck_Click(object sender, EventArgs e)
        {
            if (UserBO.CheckUserNameExist(txtusername.Text))
            {
                lblresultuser.Text = "<br />" + "<span style='color: blue;'>" + txtusername.Text + "</span>" + " đã được sử dụng. Bạn vui lòng chọn tên đăng nhập khác";                
            }
            else
            {
                lblresultuser.Text = "<br />" + "<span style='color: blue;'>" + txtusername.Text + "</span>" + " hợp lệ. Bạn có thể sử dụng tên đăng nhập này";
            }
            pncheck.Visible = true;
            lblresultuser.Visible = true;
        }

        protected void btndangky_Click(object sender, EventArgs e)
        {
            if (UserBO.CheckUserNameExist_ByRegister(txtusername.Text) == false)
            {
                checkcomplete = true;
                userbosave = UserBO.NewUserBO(txtusername.Text);
                userbosave.Password = UserBO.encryptData(txtpass.Text);
                userbosave.FullName = txtfullname.Text;
                if (dldate.SelectedValue != "Ngày" && dlmonth.SelectedValue != "Tháng" && dlyear.SelectedValue != "Năm")
                {
                    string fulldate = dldate.SelectedValue + "/" + dlmonth.SelectedValue + "/" + dlyear.SelectedValue;
                    try
                    {
                        userbosave.BirthDay = Convert.ToDateTime(fulldate);
                    }
                    catch
                    {
                        fulldate = dlmonth.SelectedValue + "/" + dldate.SelectedValue + "/" + dlyear.SelectedValue;
                        userbosave.BirthDay = Convert.ToDateTime(fulldate);
                    }
                }
                else
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success", "alert('Chọn ngày sinh !')", true);

                    return;
                }
                if (FileUpload_avatar.FileName.Length > 0)
                {
                    postImage(FileUpload_avatar);
                    if (checkcomplete == false) return;
                }
                userbosave.Email = txtemail.Text;
                userbosave.NickYahoo = txtyahoo.Text.Trim();
                userbosave.NickSkyper = txtskyper.Text.Trim();
                userbosave.MobilePhone = txtphone.Text;
                userbosave.City = cbcity.SelectedValue;
                userbosave.Address = txtdiachi.Text.Trim();
                userbosave.UrlWebsite = txtwebsite.Text.Trim();
                userbosave.QuestionID = int.Parse(dlquestion.SelectedValue);
                userbosave.AnswerQuestion = txttraloi.Text.Trim();
                userbosave.IsActive = true;
                userbosave.Islock = false;
                userbosave.RoleID = 3;
                userbosave.RegisterDate = DateTime.Now;
                try
                {
                    userbosave.Save();
                    Session["AfterRegister"] = txtusername.Text;
                    Response.Redirect("ThanhCong.aspx");
                }
                catch
                {
                    deleteExitsImage(userbosave.Avatar);
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success", "alert('Đăng ký không thành công !')", true);
                }
            }
            else
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success", "alert('Tên đăng nhập đã tồn tại !')", true);
            }
        }

        protected void btnhuy_Click(object sender, EventArgs e)
        {
            Response.Redirect("Home.aspx");
        }

        public void getquestion()
        {
            try
            {
                var listquestion = QuestionInfo.GetQuestionInfo();
                dlquestion.DataSource = listquestion;
                dlquestion.DataBind();
            }
            catch { }
        }

        public void getvaluemonth_year()
        {
            dldate.Items.Clear();
            dlmonth.Items.Clear();
            dlyear.Items.Clear();
            dldate.Items.Add("Ngày");
            dlmonth.Items.Add("Tháng");
            dlyear.Items.Add("Năm");
            for (int i = 1800; i <= DateTime.Now.Year; i++)
                dlyear.Items.Add(i.ToString());
            for (int i = 1; i <= 12; i++)
            {
                dlmonth.Items.Add(i.ToString());
            }
            if (dlmonth.SelectedValue != "Tháng")
            {
                int month = Convert.ToInt32(dlmonth.SelectedValue);
                getvaluedate(month);
            }
            else getvaluedate(2);
        }

        public void getvaluedate(int month)
        {
            dldate.Items.Clear();
            dldate.Items.Add("Ngày");
            if (month == 2)
            {
                if ((month % 4) == 0)
                {
                    for (int i = 1; i <= 29; i++)
                        dldate.Items.Add(i.ToString());
                }
                else
                {
                    for (int i = 1; i <= 28; i++)
                        dldate.Items.Add(i.ToString());
                }
            }
            else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
            {
                for (int i = 1; i <= 31; i++)
                    dldate.Items.Add(i.ToString());
            }
            else
            {
                for (int i = 1; i <= 30; i++)
                    dldate.Items.Add(i.ToString());
            }
        }

        private void postImage(FileUpload filename)
        {
            try
            {
                if (filename.HasFile)
                {
                    if (filename.FileBytes.Length < 512000)
                    {
                        _fileImageName = filename.FileName.Replace(" ", "_");

                        string formatFile = Path.GetExtension(_fileImageName);
                        formatFile = formatFile.ToLower();
                        //kiem tra dinh dang cho phep upload
                        if (formatFile.Equals(".jpg") || formatFile.Equals(".gif") || formatFile.Equals(".png") || formatFile.Equals(".JPG") || formatFile.Equals(".GIF") || formatFile.Equals(".PNG"))
                        {
                            //kiem tra file da ton tai
                            string filePath = HttpContext.Current.Server.MapPath("TotalUpload/UserAvatar/" + _fileImageName);
                            if (File.Exists(filePath))
                            {
                                //neu ton tai thi doi ten
                                _fileImageName = ImageFileName(_fileImageName);
                            }
                            //thuc hien luu file
                            try
                            {
                                filename.SaveAs(Server.MapPath("TotalUpload/UserAvatar/" + _fileImageName));
                                //deleteExitsImage(txtlink.Text);
                                //txtlink.Text = _fileImageName;
                                try
                                {
                                    userbosave.Avatar = _fileImageName;
                                }
                                catch
                                {
                                    userbosave.Avatar = "";
                                }
                            }
                            catch (Exception)
                            {
                                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success",
                                                                "alert('Có một số vấn đề xả ra trong khi lưu. Xin hay thử lại.')", true);
                                checkcomplete = false;
                                return;
                            }
                        }
                        else
                        {
                            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success",
                                                                "alert('Chỉ được upload các định dạng ảnh (.jpg , .gif, .png)')", true);
                            checkcomplete = false;
                            return;
                        }
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success",
                                                                "alert('Kích thước ảnh không quá 500Kb.')", true);
                        checkcomplete = false;
                        return;
                    }
                }
                else
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success",
                                                                "alert('Chưa chọn hỉnh ảnh đại diện. !')", true);
                    checkcomplete = false;
                    return;
                }
            }
            catch { }
        }

        private static string ImageFileName(string fileName)
        {
            Random r = new Random();
            return r.Next(0, 10000).ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Year.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + fileName;
        }

        private void deleteExitsImage(string filedelete)
        {
            try
            {
                var pathFileImage = Server.MapPath("TotalUpload/UserAvatar/" + filedelete);
                FileInfo fileInfo;
                if (File.Exists(pathFileImage))
                {
                    fileInfo = new FileInfo(pathFileImage);
                    fileInfo.Delete();
                }
            }
            catch
            {
            }
        }

        protected void btndangnhap_Click(object sender, EventArgs e)
        {
            Response.Redirect("DangNhap.aspx");
        }

        protected void btndangnhap_Click1(object sender, EventArgs e)
        {
            Response.Redirect("DangNhap.aspx");
        }
    }
}
